class Solution {
    //剪绳子
    public int cuttingRope(int n) {
        if(n<4){
            return n-1;
        }
        int count=n/3;//计算能被分成几个3
        int b=n%3;//最后一段的长度
        long res=1;
        int p=1000000007;
        for(int i=1;i<count;i++){//少算了两段
            res=res*3%p;
        }
        //被三整除
        if(b==0){
            return (int)(res*3%p);
        }
        //最后一段是1,加上前一段就是4
        if(b==1){
            return (int)(res*4 %p);
        }
        //最后一段是2，加上前一段就是5的最大时6
        return (int)(res*6 %p);
    }
}
        